1. Field of the Invention
The present invention relates generally to depiction of objects through the use of a computer and more specifically to the depiction of objects in computer animation. The present invention is also directed to a technique for efficiently computing effects of participating media, such as volumetric effects and atmospheric effects, in the context of a high-quality renderer, such as a Reyes-based renderer or a ray tracer.
2. Description of the Related Art
Traditional animation techniques allow the animator to create the apparent motion of animated characters, to be viewed by a viewer of the animation. The use of computers to simplify the animation process has provided many benefits to the traditional hand-drawn process. Computer animated scenes are well known in the prior art and have been used in many different capacities. Such animation is utilized in traditional movies, videos and online streaming of moving pictures, as well as interactive movies where the motion of characters is often initiated by a user.
In computer graphics, an image can be created from three-dimensional objects modeled within the computer. The process of transforming the three-dimensional object data within the computer into viewable images is referred to as rendering. Single still images may be rendered, or sequences of images may be rendered for an animation presentation.
Typically, rendering is performed by establishing a viewpoint of a viewing camera location 10 within an artificial “world space” containing the three-dimensional objects to be rendered. This is illustrated in FIG. 1. A “view plane,” comprising a two-dimensional array of pixel regions, is defined between the viewing camera location and the objects to be rendered (also referred to herein as the “object scene”) To render a given pixel for an image, a ray is cast from the viewing camera 10, through the pixel region of the view plane associated with that pixel, to intersect a surface of the object scene 12. Image data associated with the surface at that point or region is computed based on shading properties of the surface, such as color, texture and lighting characteristics. Multiple points, sampled from within a region of the object scene defined by the projection of the pixel region along the ray, may be used to compute the image data for that pixel (e.g., by applying a filtering function to the samples obtained over the pixel region). As a result of rendering, image data (e.g., RGB color data) is associated with each pixel. The pixel array of image data may be output to a display device, or stored for later viewing or further processing.
One effect that is often desirable in an animation scene is the depiction of atmospheric effects such as fog or smoke. A Reyes image rendering architecture is often used to provide fast high-quality rendering of a scene. (See, “The Reyes Image Rendering Architecture”, R. L. Cook et al. Computer Graphics, Vol. 21, No. 4, 1987). While the Reyes algorithm is primarily designed to resolve visibility and appearance of surfaces, it also provides a framework for computing atmospheric effects such as fog or smoke. At each surface point being shaded, illustrated in FIG. 1, the contribution of the atmosphere can be computed (usually as definite line integrals of scattering and absorption) and combined with the surface shading value. Computing these line integrals generally involves sampling many points along each line, and can be quite costly, in terms of time and computer processing.
Because atmospheric computations are performed once for every surface shading point, the cost of the atmospheric computations is tied to the surface shading rate. This means that even simple, low-detail fog, or other volumetric effect, can be very expensive if scene geometry is complex. Often the desired effects cannot be achieved in the timeframe needed and for reasonable requirements of cost and time. Thus, there is a need in the prior art to have an improved method for rendering atmospheric effects in computer graphics and animation.